The use of data communication for delivery of various content, including digital data, documents, media (e.g., images, sound, etc.), multimedia, (e.g., images and sound), etc., has become nearly ubiquitous in recent years. One common architecture for providing such data communication includes a first data communication device and a second data communication device which are configured to communicate with each other over a network providing one or more data communication channel. Such data communication channels can be hard-wired or wireless. Examples of hard-wired data communication channels include broadband cable and digital subscriber line (DSL). Examples of wireless communications channels include Edge, 3G, 4G, WiMAX and Wi-Fi.
In one example of the use of data communication, a mobile communication device, such as a smart phone, a personal digital assistant (PDA), a tablet device, a portable personal computer (PC), can communicate with a centralized system, such as a web server, application server, database server, etc., providing data to and/or accepting from the mobile communication device via a network. The network may include a combination of communication channels utilized in providing data communication between the mobile communication device and the centralized system. For example, the mobile communication device may communicate with a broadband cellular station of the network using an Edge, 3G or 4G communication channel. The cellular station may then pass the communication along to a network router over a fiber-optic or T-carrier line. The network router may then pass the communication along to the centralized system over a broadband cable or DSL connection. That is, one or more different communication channels of the network may be utilized to provide the network link between the mobile communication device and the centralized system.
A number of communication techniques, including various data-cast techniques and recipient signaling techniques, may be utilized in providing such data communications. For example, data communication may be provided using a uni-cast data-cast technique, whereby the data is transmitted as a uni-cast data stream by a first communication device (e.g., the aforementioned centralized system) to a particular second communication device (e.g., the aforementioned mobile communication device). Alternatively, data communication may be provided using a multi-cast data-cast technique, whereby the data is transmitted as a multi-cast data stream by a first communication device (e.g., the aforementioned centralized system) to a plurality of selected communication devices (e.g., specifically identified first and second mobile communication devices). Data communication may likewise be provided using a broadcast data-cast technique, whereby the data is transmitted as a broadcast data stream by a first communication device (e.g., the aforementioned centralized system) to a plurality of receiving communication devices (e.g., first and second mobile communication devices desirous of receiving the data, although not specifically identified for providing data to by the centralized system).
The foregoing data streams may be transmitted using various recipient signaling techniques. For example, feedback techniques may be utilized between a receiving communication device and a transmitting communication device to provide acknowledgment of receipt of individual data packets and/or request for retransmission of particular data packets which were not received or which otherwise contained data which is unsatisfactory to or unusable by the receiving data communication device. Such feedback techniques may utilize appreciable network resources (e.g., communication bandwidth, processing cycles, etc.) and introduce data latency, and thus are often impractical where a large number of receiving communication devices are involved (e.g., primarily useful with respect to uni-cast communications or multi-cast communications with a relatively small number of receiving communication devices). Alternatively, feedback between a receiving communication device and a transmitting communication device may not be used in favor of blind transmission of data, thereby avoiding utilizing network resources for acknowledgments, requests for retransmission, and retransmission of data (e.g., particularly useful with respect to broadcast communications or multi-cast communications with a relatively large number of receiving communication devices). However, such blind transmission techniques can result in missing data or data which is unusable by the receiving communication device, without providing any way for the receiving communication device to obtain the missing or unusable data. Accordingly, systems utilizing blind transmission are often configured to accommodate a worst case, or expected worst case, situation. For example, a transmitting communication device may implement transmission data redundancy at a level sufficient to meet an expected worst case. Such a configuration may, however, result in unnecessary utilization of network resources, such as where the worst case situation is not experienced.
It should be appreciated that, although there may several different types of communication channels in a network, typical systems operate to utilize a single network link (perhaps comprised a multiple communication channels) for a data communication session between a first and second communication device regardless of which of the foregoing communication techniques may be utilized. Moreover, the network links provided with respect to a number of data communication device pairings (e.g., the network link between the first communication device and second communication device and the network link between the first communication device and third communication device) may utilize a number common network devices. These common network devices may be used by several users at once and, therefore, demands on the common network device's bandwidth may be great. For example, in an urban environment, hundreds of mobile communication device users may simultaneously access a single cellular data node. Since the cellular data node has limited capacity to carry data, there may be restrictions on the bandwidth available to each user. This problem is particularly aggravated when the mobile device users attempt to access large data files, such as media files. Thus, these common network devices often become data bottlenecks and ultimately restrict the usability of the system, particularly with respect to certain types of data communication.
Recently, this bottleneck problem has been exacerbated by an increased popularity of streaming media content, such as Internet-based TV, movies, and music. This streaming media content is most often transmitted “over the top” of the standard communication channels, meaning that the regular bandwidth of the communication channel may be heavily consumed by a small number of users, leaving the remaining users to contend for the leftover bandwidth. In order to combat this problem, some Internet service providers have started restricting bandwidth usage and/or charging additional fees for high consumption. By way of example, a mobile communication device may be restricted to a 2 to 4 gigabyte limit on downloads within a specified period, such as a month. Other methods include pay-as-you-go, meaning that the user simply pays for bandwidth on a per-unit basis. For example, a user may be charged a few cents per megabyte of downloaded content.
As it turns out, much of the heavy network traffic is not unique to a particular user or communication device in many situations. Often users tend to consume similar types of content files. For example, each mobile device may require the same operating system upgrades periodically released by an operating system developer. In another example, certain video content tends to “go viral,” meaning that the content becomes very popular among a large number of users within a short period of time. In other cases, such as with regular television programming, regular groups of users may be interested in viewing the content within a given time period.
One solution proposed for the delivery of such widely consumed data communication content is to implement a datacast network for large file downloads as described in U.S. Pat. No. 6,622,007 to Linden. Linden describes a system where media files are broadcast to a remote device over a wireless broadcast network using blind transmission techniques. The broadcast includes an ancillary data channel (e.g., non-real-time media file download) broadcast in the same broadcast channel (i.e., the same communication link) as a primary data channel (e.g., real-time program). The remote device then extracts and stores the data of the ancillary data channel for subsequent output to a user. The datacast system disclosed by Linden includes several disadvantages. For example, the system only operates asynchronously, meaning that the media file downloaded from the data cast network cannot be used in real time. Moreover, the datacast system of Linden relies only upon blind transmission broadcast techniques to deliver both the primary data channel and ancillary data channel.